/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;

/**
 *
 * @author Nelson Cuadra; Pablo Pioli.
 */

//Esta clase es la encargada de construir paneles que seran utilizados para construir GUI mas complejas.
// NO SE SI ESTA BIEN ESTO... ESCUCHE POR AHI QUE ES UNA VIOLACION A OOP
public class FabricaPaneles {
    //CONSTANTES
    public final static int DEFAULT = 0, EMPTY=1;
                
    
    static private JPanel getMateriasPanel(int materias, int año){
        JPanel aux=new JPanel();
        aux.setLayout(new GridLayout(materias, 2));
        Border etched = BorderFactory.createEtchedBorder();
        Border titled = BorderFactory.createTitledBorder(etched, "Año "+año);
        aux.setBorder(titled);
        for (int i = 0; i < materias; i++) {
            JLabel nomMateria = new JLabel("Materia "+i);
            JCheckBox checkbox = new JCheckBox();
            aux.add(nomMateria);
            aux.add(checkbox);
        }
        return aux;
        
    }
    public static JPanel getCorrelatividadesPanel(int años, int materias){
        JPanel aux;
        aux = new JPanel();
        aux.setLayout(new GridLayout(1, años));
        for (int i = 0; i < años; i++) {
            aux.add(getMateriasPanel(materias, i));
        }
        return aux;
    }
    
    /**
     * 
     * @param labels los textos a mostrar en cada boton. 0, 1, 2 o 3 como maximo.
     * @return 
     */
    public static NavigationPanel getNavigationPanel(String[] labels, int width){
        //miramo que no sean mas de tre
        if(labels.length>3){
            //se pudre el queso
            System.err.println("Error: No mas de 3 botones.");
            System.exit(0);
        }
        //se inicializa el panel choto
        NavigationPanel aux = new NavigationPanel();
        //Que quede lindo
        aux.setPreferredSize(new Dimension(width,45));
        
        //para escribir un bucle
        JButton[] botones = {aux.Boton3, aux.Boton2, aux.Boton1};
        //se crea un array length = 3 para unificar el bucle. Se copia.
        String[] asd = new String[3];
        System.arraycopy(labels, 0, asd, 0, labels.length);
        
        for (int i = 0; i < asd.length; i++) {
           if(asd[i]==null){
               botones[i].setVisible(false);
           }else{
               botones[i].setText(asd[i]);
           }
        }
        return aux;
    }
    
    /**
     *  
     * @return 
     */
    public static NavigationPanel getNavigationPanel(int width){
        String[] param = {"Aceptar", "Cancelar"};
        return FabricaPaneles.getNavigationPanel(param , width);
    }
    public static TitlePanel getTitlePanel(String titulo){
        TitlePanel aux = new TitlePanel();
        
        //seteo el testo
        aux.title.setText(titulo);
        //devuelvo el panel
        
        return aux;
    }
}
